import { Util } from '../../utils/util.js';

export class SelfDefFundAccountType {
  
    /**
     * @param {string} id - ID
     * @param {string} name - 名称
     * @param {string} code - 编码
     */
    constructor(id = '', name = '',code = '') {
        this.id = id;
        this.name = name;
        this.code = code;
    }

        // 空实例
    static empty() {
        return new SelfDefFundAccountType('', '', '');
    }

    // 克隆方法
    static clone(type) {
        return new SelfDefFundAccountType(type.id, type.name, type.code);
    }

    // 从 JSON 构建
    static fromJson(json) {
        return new SelfDefFundAccountType(
            Util.jsonToString(json.id),
            Util.jsonToString(json.name),
            Util.jsonToString(json.code)
        );
    }

    // 检查是否为空
    isEmpty() {
        return Util.isEmpty(this.id) && Util.isEmpty(this.name) && Util.isEmpty(this.code);
    }

    // 比较两个对象是否相等
    equals(other) {
        if (!(other instanceof SelfDefFundAccountType)) {
            return false;
        }
        return this.id === other.id && this.name === other.name && this.code === other.code;
    }

}